package com.ft.oa.domain.customer;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ft.oa.domain.Attachment;
import com.ft.oa.domain.dto.knowledgeBase.AttachmentDto;
import com.ft.oa.utils.SecurityUtils;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;


@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName(value = "customer",autoResultMap = true)
public class Customer {
  /**
   * 企业id
   */
  @TableId(type = IdType.AUTO)
  private Integer id;
  /**
   * 公司名称
   */
  private String name;//必传
  /**
   * 上级公司
   */
  private String superioa;
  /**
   * 行业id
   */
    private Integer industryId;
  /**
   * 所属行业
   */
  private String hyname;//必传
  /**
   * 其他行业
   */
  private String hynameOther;//必传
  /**
   * 创建人id
   */
  private Long creator =  SecurityUtils.getCurrentUser().getId();
  /**
   * 商务经理
   */
  private String creatorName;
  /**
   * 客户对接人
   */
  private String customerName;
  /**
   * 联系方式
   */
  private String phone;
  /**
   * 联系地址
   */
  private String address;
  /**
   * 更新时间
   */
  @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd HH:mm:ss")
  private LocalDateTime updateTime;
  /**
   * 跟踪更新时间
   */
  @JsonFormat(shape = JsonFormat.Shape.STRING, pattern="yyyy-MM-dd")
  private Date creatorTime;
  /**
   * 公司简介
   */
  private String customerBrief;//必传
  /**
   * 数据状态(0存在1删除)
   */
  private Integer state;
  /**
   * 拜访记录次数
   */
  private Integer record;
  /**
   * 客户组织架构人数
   */
  private Integer headCount;
  /**
   * 所属区域  （1.华北 2.华南 3.华中 4.华东 5.东北 6.西南 7.西北）
   */
  private Integer area;

  /**
   * 项目数量
   */
  @TableField(exist = false)
  private Integer projectCount;

  /**
   *  用于前端返回接收对象
   */
  @TableField(exist = false)
  private List<AttachmentDto> attachments;

  /**
   * 客户附件
   */
  private String achment;

  /**
   * 用于展示给前端
   */
  @TableField(exist = false)
  private List<Attachment> attachment;

}
